github.com/0chain/gosdk@v1.17.11/docs/uml/download file.puml (about) 1 @startuml 2 participant "<size:20><&terminal></size> ./zbox download" as cli 3 collections gosdk 4 collections blobber 5 6 alt not empty remotepath 7 cli -> gosdk: GetAllocation(allocationID) 8 cli -> gosdk: downloadFile() 9 10 gosdk -> gosdk: check initialized allocation 11 gosdk -> gosdk: check valid path 12 gosdk -> gosdk: check number of blobbers 13 gosdk -> gosdk: create download request 14 gosdk -> gosdk: process download 15 gosdk -> gosdk: create list request 16 gosdk -> blobber: get file consensus from blobber 17 gosdk -> gosdk: calculate number of bytes per shard 18 19 group for startBlock < endBlock 20 gosdk -> gosdk: download block 21 gosdk -> gosdk: calculate startBlock 22 end 23 24 gosdk -> gosdk: check hash when the download request is not by block/partial 25 gosdk -> cli: download completed and return 26 27 else not empty authticket 28 cli -> gosdk: GetAllocationFromAuthTicket(authticket) 29 cli -> gosdk: InitAuthTicket(authticket) 30 cli -> gosdk: downloadFile() 31 32 gosdk -> gosdk: check initialized allocation 33 gosdk -> gosdk: get auth ticket from authticket 34 gosdk -> gosdk: check valid path 35 gosdk -> gosdk: check number of blobbers 36 gosdk -> gosdk: create download request 37 gosdk -> gosdk: process download 38 gosdk -> gosdk: create list request 39 gosdk -> blobber: get file consensus from blobber 40 gosdk -> gosdk: calculate number of bytes per shard 41 42 group for startBlock < endBlock 43 gosdk -> gosdk: download block 44 gosdk -> gosdk: calculate startBlock 45 end 46 47 gosdk -> gosdk: check hash when the download request is not by block/partial 48 gosdk -> cli: download completed and return 49 end 50 @enduml